package com.example.myapplication.Activity;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ListView;

import com.example.myapplication.Utils.HttpUtils;
import com.example.myapplication.InfoBean;
import com.example.myapplication.R;
import com.example.myapplication.Utils.LoadNetDataAsyncTask;
import com.example.myapplication.adapter.VideoAdapter;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;
/**
 * 开发时写ListView加载数据的步骤：
 * 1.创建activity，编写布局，找到listview
 * 2.根据网络数据源，直接编写bean类
 * 3.分析bean类，找到里面需要用的集合，作为数据源，声明并且初始化
 * 4.创建一个类，继承BaseAdapter，作为这个ListView适配器类
 * 5.编写适配器代码，然后在activity当中创建适配器对象，并且设置适配器
 * 6.获取网络数据，将网络数据传回主线程
 * 7.解析数据,分析要使用的是哪个集合
 * 8.将解析到的集合数据，添加到原来的数据源中
 * 9.数据源发生变化了，提示适配器更新数据
 * */

public class VideoListActivity extends AppCompatActivity implements LoadNetDataAsyncTask.onGetNetDataListener {
    String url = "http://baobab.kaiyanapp.com/api/v4/tabs/selected?udid=11111&vc=168&vn=3.3.1&deviceModel=Huawei6&first_channel=eyepetizer_baidu_market&last_channel=eyepetizer_baidu_market&system_version_code=20";
    ListView videoLv;
    List<InfoBean.ItemListBean> mDatas;
    private VideoAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_video_list);
        mDatas = new ArrayList<>();
        videoLv = findViewById(R.id.video_lv);
        adapter = new VideoAdapter(this, mDatas);
        videoLv.setAdapter(adapter);

//        执行异步任务
        LoadNetDataAsyncTask task = new LoadNetDataAsyncTask(this,this);
        task.execute(url);
    }

    @Override
    public void showDataFromNet(String s) {
        parseData(s);
    }

    private void parseData(String s) {
        //                解析数据
        InfoBean videoBean = new Gson().fromJson(s, InfoBean.class);
        List<InfoBean.ItemListBean> list = videoBean.getItemList();
//                遍历得到的集合，将想要显示的添加到原来的数据源中
        for (int i = 0; i < list.size(); i++) {
            InfoBean.ItemListBean itemBean = list.get(i);
            String type = itemBean.getType();
            if (type.equals("video")) {
                mDatas.add(itemBean);
            }
        }
        //把获取解析到的数据，添加到原来的数据源中
//                数据源发生变化了，提示适配器更新
        adapter.notifyDataSetChanged();
    }

}
